Network function virtualization (NFV) is a network architecture concept that virtualizes classes of network node functions into building blocks that may connect, or chain together, to create communication services. NFV platforms may be distributed, centralized, or a hybrid of distributed and centralized. Distributed NFV (or on-site NFV) is a platform that utilizes universal customer premises equipment (uCPE), while centralized NFV (or cloud-based NFV) is a platform that utilizes virtual customer premises equipment (vCPE).
An NFV architecture may include virtual network functions (VNFs) which are software implementations of network functions. A VNF may consist of one or more virtual machines running different software and/or processes, on top of standard high-volume servers, switches and/or storage devices, rather than having custom or dedicated hardware appliances for each network function.